import {
  TODO_ADD,
  TODO_CHECK_ALL,
  TODO_DEL,
  TODO_MODIFY_STATUS,
} from '../constants'

const initState = [
  {
    id: 1,
    name: '吃饭',
    done: true,
  },
  {
    id: 2,
    name: '睡觉',
    done: false,
  },
]
export default function todo(state = initState, action) {
  switch (action.type) {
    case TODO_DEL:
      return state.filter((item) => item.id !== action.id)
    case TODO_MODIFY_STATUS:
      return state.map((item) => {
        if (item.id === action.id) {
          return {
            ...item,
            done: !item.done,
          }
        } else {
          return item
        }
      })
    case TODO_ADD:
      const { type, ...res } = action
      return [res, ...state]
    case TODO_CHECK_ALL:
      return state.map((item) => ({
        ...item,
        done: action.done,
      }))
    default:
      return state
  }
}
